# Demo

Body:
NeuroSolutions for Excel allows the user to create custom batches for any of the 7 modules (Preprocess Data, Analyze Data, Tag Data, Create Network, Create Data Files,  Train Network, and Test Network).  You can create a custom batch when
     1).  You need to perform an operation specific to your problem.
     2).  You can not find a built-in function that performs the desired
           operation.
     3).  You want to set up a complex batch experiment.
You can use custom batches to control Microsoft Excel, control NeuroSolutions (through Automation), or call the built-in NeuroSolutions for Excel functions.  The following slides will demonstrate how easy it is to write your own custom batches.


Body:
To create a custom batch process, you simply select "New Batch" from the "NeuroSolutions" menu.  This displays the "New Batch" dialog box.  Within this dialog box you select the type of batch you want to create then enter a name and a description. After you click OK, the Visual Basic Editor will be launched diplaying a newly created batch template module.  This module contains 3 procedures:  OnGetName, OnGetDescription, and OnRunBatchProcess.  Within the OnGetName and OnGetDescription procedures, you will see the batch name and description you entered in the "New Batch" dialog.  Within the OnRunBatchProcess procedure, you type in the code to be executed when the batch process is run.  Click "Blank Template" to open the Visual Basic Editor and view a blank batch template.


Body:
In this step we will demonstrate a "Preprocess Data" custom batch process designed to hard limit the data in the selected column to 1 if it is greater than zero and -1 if it is less than zero.  The easiest way to write the code for a batch process which manipulates data within Microsoft Excel is to use the macro recorder to record the data manipulation operations and then edit the recorded code as needed.  The code for this batch process is contained within the "NSPreprocessHardLimit" module shown behind this slide.  This code was created using the macro recorder and then edited to make it general and to insert comments.  To run this batch, select the "Run Hard Limit Batch" button below.


Body:
In this step we will demonstrate a "Create Network" custom batch process which communicates with NeuroSolutions through Automation to build a Hopfield network.  NeuroSolutions also has a macro recorder which makes creating this batch very simple.  The code for this batch is located within the "NSCreateNetHopfield" module shown behind this slide.  This code was recorded within NeuroSolutions and then converted to Microsoft Excel code by using the "Copy As VB" feature of the MacroWizard.  The code was then edited to add comments.  To run this batch press the "Run Create Hopfield Batch" button below.


Body:
This example will demonstrate how to call the built-in NeuroSolutions for Excel functions.  You have access to all of the built-in functions for each of the 7 modules.  Furthermore, these functions can be combined to create complex custom batches that automate every aspect of your experiment.  In this step we will create a custom batch that combines the tagging, training, and testing operations into one custom batch.  The batch is written such that it tags the data specific to the XOR problem.  However, it could have been written with a dialog interface such that the user can enter the range and type of tag.  The code for this batch is  contained within the "NSTrainCombined" module shown behind this slide.  To run this batch on the XOR problem press the "Run Tag Train Test Batch" button below.


Body:
The previous slides have shown you how easy it is to build your own custom batches.  Custom batches provide you with a tremendous amount of flexibility and power.  You have seen that custom batches  can be written to control Microsoft Excel, control NeuroSolutions, or call the built-in NeuroSolutions for Excel functions.  It should also be noted that a custom batch can be saved in the workbook in which it was written or it can be moved to the code workbook.  The first case allows local access to the batch (can only be used on that workbook), whereas the second allows global access (can be used on any workbook).  Note: Custom batches are run by clicking the "Run Batch" menu item under the menu for the corresponding NeuroSolutions for Excel module.  Click "Next" to return to the main demo panel.


